--[[
使用lua语言保证原子性，然后直接判断key值是否存在，如果不存在说明业务代码执行完毕了，就停止，返回False
如果key存在并且key和value与之前加的锁一样，说明业务代码还没执行完毕，
就更新ttl，返回true，否则说明value不一样，也返回false
--]]

local key = KEYS[1]
local threadId = ARGV[1]
local time = ARGV[2]
local id = redis.call('get', key)
-- 如果key存在并且id与threadId相等，就延时
if (id and id == threadId) then
    redis.call('expire', key, time)
    return 1
end
-- 否则说明没有延时成功
return 0